Git wijzigingen ongedaan maken
Home

Git wijzigingen ongedaan maken

Git wijzigingen ongedaan maken

Bron

Undoing Changes

git reset

Het commando git revert is een "veilige" manier om wijzigingen ongedaan te maken. Maar git reset is een gevaarlijke methode. Wanneer je ongedaan maakt met git reset (en er naar de commits niet langer verwezen wordt door een ref of reflog), is er geen manier de originele kopie terug te halen. Het is een permanent ongedaan maken, voor eeuwig en altijd. Voorzichtigheid is dus geboden bij het gebruik van dit commando. Het is een van de enige Git commando's waarmee je werk kan kwijtspelen.

In de praktijk

Haal het opgegeven bestand uit de verzamelplaats maar laat de werkmap ongewijzigd. Als je het bestand sinds de laatste commit gewijzigd hebt worden die niet overschreven:

git reset <file>

Herstel de verzamelplaats zodat die overeenkomt met de laatste commit en laat de werkmap ongewijzigd. Dat haalt alle bestanden uit de verzamelplaats zonder iets in de werkmap te overschrijven. Op die manier heb je de mogelijkheid om van nul af aan bestanden op de verzamelplaats te zetten:

git reset

Herstel de verzamelplaats en de werkmap zodat die weer exact overeenkomen met de laatste commit. Naast het feit dat de wijzigingen uit de verzamelplaats worden verwijderd, zorgt de --hard optie ervoor dat git alle wijzigingen in de werkmap ook overschrijft. M.a.w. dit verwijdert alle niet neergelegde veranderingen. Dus denk twee keer na vooraleer je effectief lokale wijzigingen weggooit!

git reset --hard

Draai de in bruikzijnde head van de tak terug naar de <commit>, reset de verzamelplaats maar verander niets in de werkmap. Alle veranderingen sinds de <commit> blijven staan in de werkmap.

git reset <commit>

Draai de in bruikzijnde head van de tak terug naar de <commit>, reset zowel de verzamelplaats als de werkmap. Dit wijzigt niet alleen de niet neergelegde wijzigingen maar alle commits na de <commit> ook!

git reset --hard <commit>

JI
2017-01-28 21:11:55